接下來的要介紹一個很重要的模型觀念 - 集成式學習。俗話說的好,三個臭皮匠勝過一個諸葛亮,而在機器學習又是怎麼應用呢?讓我們一起探索吧!
集成式學習(Ensemble Learning),是將數個監督式學習的模型集合起來,可以達到更好的模型成效。俗話說的話,三個臭皮匠勝過一個諸葛亮,就是這個道理!
若使用單一個模型,可能會有過度擬合資料等缺點;但是我們可以集眾人之力量,雖然每個模型可能是一個弱的分類器,但是有多個模型並綜合評估,可以達到互補且加分的效果。
依照處理方式的不同,又可以分為 Bagging、Boosting、Blending、Stacking。
面向 | 方法 | 例子 |
---|---|---|
資料面 | Bagging | Random Forest |
資料面 | Boosting | XGBoost、LightGBM、GBDT、AdaBoost、CatBoost |
特徵面 | Blending | 不同模型進行投票 |
特徵面 | Stacking | 不同模型進行堆疊 |
裝袋法(Bootstrap Aggregating, Bagging),把訓練資料重新採樣之後,就可以產生不同組的訓練資料。常見的例子有隨機森林。
少數服從多數,透過不同的子集合進行不同子模型訓練,最終由子模型進行投票。
自助法或拔靴法,是一種從給定訓練集中有放回的均勻抽樣,也就是說,每當選中一個樣本,它等可能地被再次選中並被再次添加到訓練集中。
參考wiki
目標是為了要避免學習錯誤,讓自己往學正確的東西。根據預測錯誤的資料調整其權重值,讓模型下次能學習比較好。
迭代訓練某個模型,根據 i-1 輪預測錯誤得到的情況來修正第 i 輪訓練樣本的權重。
舉例來說,老師會在之前學生錯過的題目增加配分的比重,若再次寫錯代表沒有學好。
混合不同種的模型,進行投票(權重可以自己定)。
將預測的結果當作特徵,可以當作另一個模型的輸入值,因此又可以訓練一個新模型,如此重複地手段可以稱之為堆疊(Stacking)。